const express = require("express");
const router = express.Router();
// 专门用来解析HTTP请求体。body-parser允许我们方便地处理如JSON、URL-encoded数据等形式的内容
const bodyParser = require("body-parser");
// 负责解析URL编码的数据（即GET或POST请求中的查询字符串或表单数据）
const urlencodedParser = bodyParser.urlencoded({
  extended: false, // 表示不解析URL字符串的空格字符（默认为true时会解析）
});

// 创建路由
router.get("/", (req, res) => {
  // 自定义响应头 可链式
  res.set("Content-type", "text/html;charset=utf-8").set("x-powered-by", "Express").send("hello Express");
});

// 路由路径
router.get("/home", (req, res) => {
  res.setHeader("content-type", "application/json;charset=utf-8");
  res.json({
    path: req.path,
    query: req.query,
    ip: req.ip,
    host: req.get("host"),
    params: req.params?.id || null,
  });
});

// 登录
router.get("/login", (req, res) => {
  res.sendFile(__dirname + "/form.html"); // 跳转表单页
});
router.post("/login", urlencodedParser, (req, res) => {
  console.log(req.body); // 请求体信息
  res.send("已登录");
});

// 重定向
router.get("/redirect", (req, res) => {
  res.redirect("http://www.baidu.com/s?wd=腐女"); //  302 重定向（响应头Location）
});

// 下载
router.get("/down", (req, res) => {
  res.download(__dirname + "/data.txt");
});

// 文件
router.get("/file", (req, res) => {
  res.sendFile(__dirname + "/style.css");
});

module.exports = router;
